Mercado de Dados
é um pipeline completo de dados sobre o mercado de trabalho em tecnologia, do zero à visualização. Vagas são extraídas diariamente via API, transformadas e modeladas em camadas analíticas, e servidas em tempo real por uma API própria que alimenta um dashboard interativo.
Mais do que um dashboard, o projeto é uma prova de stack ponta a ponta — engenharia de dados, modelagem analítica e product design trabalhando juntos, do jeito que eu acredito que times de dados deveriam funcionar.
Briefing
Construir, sozinho, um pipeline de dados completo e público sobre o mercado de trabalho em tecnologia — da extração à visualização — como prova prática de stack de Analytics Engineering + Product Design.
Funcionalidade:
- Extração automatizada de vagas via múltiplas fontes (API e RSS)
- Modelagem analítica em camadas, com testes de qualidade de dados
- Dashboard interativo com filtros conectados a uma API própria
Entregáveis:
- Pipeline de extração em Python (Adzuna API, RemoteOK, We Work Remotely)
- Modelagem em Snowflake + dbt (staging → intermediate → marts)
- API própria em FastAPI, publicada em produção
- Dashboard com 3 páginas (Overview, Skills, Salários) e atualização automática
Metas e Objetivos
O projeto busca responder, com dados reais e atualizados, quais tecnologias o mercado de dados está pedindo agora e quanto elas pagam — substituindo achismo por evidência. Ao mesmo tempo, funciona como vitrine técnica: mostrar que um único profissional consegue projetar, construir e operar um pipeline de dados de ponta a ponta.
- Gerar Inteligência de Mercado Real: Consolidar vagas de múltiplas fontes em uma base única e confiável, com ranking de skills, senioridade e faixas salariais atualizados continuamente.
- Provar Domínio de Stack Completa: Demonstrar, num só case, competência em extração, modelagem, engenharia de API e design de produto de dados — sem depender de ferramentas low-code.
O Problema
Dados de vagas fragmentados e sem padrão
Vagas de tecnologia estão espalhadas em dezenas de plataformas, com descrições inconsistentes e nenhuma padronização de skills, senioridade ou faixa salarial. Isso torna quase impossível responder perguntas básicas de carreira com dados reais.
Perguntas sem resposta clara:
- Quais tecnologias mais aparecem nas vagas de dados agora?
- Onde estão as melhores faixas salariais, por senioridade e modalidade?
- Como o mercado remoto se compara ao presencial?
Arquitetura da Solução
O pipeline roda em quatro camadas, cada uma com uma responsabilidade clara:
- Extração: scripts em Python consomem a API da Adzuna, o feed da RemoteOK e o RSS da We Work Remotely, coletando vagas de tecnologia diariamente.
- Armazenamento: os dados brutos são carregados no Snowflake, servindo como single source of truth para todas as transformações.
- Transformação: modelos em dbt organizam os dados em camadas (staging → intermediate → marts), tratando duplicidades, normalizando skills e construindo as tabelas analíticas finais.
- Exposição: uma API em FastAPI, publicada em VPS via Docker Swarm e Traefik, serve os dados para o dashboard com atualização automática a cada 5 minutos.
Stack Técnica
Ferramentas de dado real, não de protótipo
Cada camada do pipeline usa a ferramenta que o mercado realmente usa em produção — não simplificações de portfólio. É a mesma stack que aparece nas vagas que o próprio dashboard está mapeando.
Tecnologias
Fontes de Dados
Diversidade de fontes para reduzir viés
Adzuna API
Principal fonte de dados estruturados — vagas com título, empresa, localização, salário e descrição já normalizados via API oficial.
RemoteOK
Vagas remotas com tags de tecnologia próprias, filtradas contra um dicionário de skills definido para evitar ruído.
We Work Remotely (RSS)
Feed complementar de vagas remotas, processado via parsing de RSS para ampliar a cobertura do mercado internacional.
Qualidade & Automação
Dados confiáveis, sem intervenção manual
Um pipeline público só tem valor se os dados forem confiáveis. Por isso, testes de qualidade rodam a cada execução do dbt, e a atualização é 100% automatizada.
- Testes de dbt validando duplicidade, nulos e consistência das dimensões (skill, senioridade, mercado)
- Regras de normalização por word boundary para evitar falsos positivos na extração de skills
- Deploy contínuo via Docker Swarm, com atualização do dashboard a cada 5 minutos
Design do Dashboard
Onde a engenharia de dados encontra a clareza visual
O Mercado de Dados não é apenas um pipeline — é um produto de dados público, pensado para ser lido em poucos segundos por quem está decidindo qual skill estudar em seguida. Cada decisão visual foi tomada para priorizar densidade de informação sem sacrificar clareza.
1. Dark Mode como Decisão de Posicionamento
A escolha pelo tema escuro — fundo quase-preto (#0D0D0D) — não foi estética, foi estratégica. O Mercado de Dados é um dashboard técnico, consumido por profissionais de dados que já vivem em terminais e IDEs escuros. O fundo escuro reduz fadiga visual em sessões longas de análise e cria contraste imediato para o verde-limão de destaque, que passa a funcionar como sinalizador de atenção — exatamente onde o olhar deve ir primeiro. Um modo claro também está disponível como alternativa, para quem prefere maior luminosidade ou usa o dashboard em ambientes muito iluminados — mas o dark é a experiência padrão e a que melhor representa o produto.
2. Paleta de Cores Semântica
O sistema de cores do Mercado de Dados separa fundo neutro de sinalização de dados — para que os olhos vão direto ao que importa:
- Preto Neutro (#0D0D0D) — Base. Fundo principal de todas as páginas. Neutro o suficiente para não competir com os gráficos.
- Verde-Limão (#D9FF00) — Destaque e KPIs. Cor de assinatura, usada em CTAs, valores-chave e pontos de dados críticos. Reservada — quando aparece, é porque importa.
- Índigo (#6366f1) — Série primária. Cor padrão para a série principal em gráficos de linha e barra.
- Violeta (#8b5cf6) — Série secundária. Usada para comparação entre categorias, sem competir com o índigo.
Essa lógica permite que qualquer recrutador ou analista leia o ranking de skills e faixas salariais em segundos, sem precisar interpretar legendas complexas.
3. Arquitetura da Informação
A navegação é dividida em três páginas com propósitos distintos, seguindo a ordem natural do raciocínio de mercado: do panorama para o detalhe.
- Overview: panorama geral do mercado — total de vagas, distribuição por senioridade e tendência dos últimos 3 meses. O usuário entende o cenário antes de qualquer detalhe.
- Skills: ranking das tecnologias mais demandadas, com filtros por área e senioridade — a página mais consultada, pensada para responder "o que eu deveria estudar agora?".
- Salários: faixas salariais por cargo, senioridade e modalidade (remoto vs. presencial), para negociação e planejamento de carreira.
- Filtros globais: Área, Senioridade e Mercado, conectados diretamente aos parâmetros da API — cada interação reflete uma nova query nos dados reais, não um protótipo estático.
4. Tipografia — Precisão para Dados Densos
A fonte foi escolhida por ser projetada especificamente para interfaces digitais densas em dados. No contexto de um dashboard de mercado, isso significa:
- Algarismos tabulares por padrão — números sempre alinhados em colunas, sem desalinhamento visual em tabelas de salário e ranking
- Legibilidade superior em tamanhos pequenos — dados densos sem sacrificar clareza, essencial numa página como Skills, com dezenas de itens
- Três pesos usados com critério: Regular para corpo de texto, SemiBold para subtítulos e labels, Bold para valores de KPIs
- Personalidade neutra — a fonte não compete com os dados, deixa os números ocuparem o protagonismo visual